package com.et114.modules.system.dictionary.service;

import java.util.List;

import com.et114.core.exception.CheckException;
import com.et114.modules.system.dictionary.BizEntity;
import com.et114.modules.system.dictionary.vo.BizOption;
import com.et114.modules.system.dictionary.vo.BizType;

/*
 * @author guanhw
 */
public interface IDictionaryService {
	/**
	 * ˢ��Server ��ҵ������ֵ�Ļ���
	 * 
	 */
	public void refreshBizDictionary ( ) throws Exception;
	
	/**
	 * Ϊҵ��ʵ��ȡ������ҵ�����ѡ������
	 * 
	 * @param bizEntity
	 * @return
	 */
	public int getBizCodeDesc ( BizEntity bizEntity ) throws Exception;
	
	/**
	 * Ϊҵ��ʵ���б�ȡ������ҵ�����ѡ������
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int getBizCodeDescInEntityList ( List bizEntityList )
			throws Exception;
	
	/**
	 * Ϊҵ��ʵ��ȡ������ҵ�����ѡ��Ȩ��
	 * 
	 * @param bizEntity
	 * @return
	 */
	public int getBizCodePower ( BizEntity bizEntity ) throws Exception;
	
	/**
	 * Ϊҵ��ʵ���б�ȡ������ҵ�����ѡ��Ȩ��
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int getBizCodePowerInEntityList ( List bizEntityList )
			throws Exception;
	
	/**
	 * ��ָ��ҵ��������������һ��ҵ�����ѡ��
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int addBizOption ( BizOption bizOption ) throws Exception;
	
	/**
	 * ɾ��ҵ�����ѡ�����
	 * 
	 * @param bizOptionId
	 *            ҵ�����ѡ��ID
	 * @param absDel
	 *            �Ƿ��������ɾ��
	 * @return
	 */
	public int deleteBizOption ( String bizOptionId , boolean absDel )
			throws Exception;
	
	/**
	 * �޸�ҵ�����ѡ�����
	 * 
	 * @param bizOptionId
	 * @return
	 */
	public int updateBizOption ( BizOption bizOption ) throws Exception;
	
	/**
	 * ��ȡҵ�����ѡ���б�
	 * 
	 * @param bizTypeKey
	 *            ҵ������key
	 * @param status
	 *            ��־�Ƿ�ֻ��ȡ��Чҵ�����ѡ��
	 * @return ҵ�����ѡ���б�
	 */
	public List retrieveBizOptionList ( String bizTypeKey , String status )
			throws Exception;
	
	/**
	 * ��ȡָ����ҵ�����ѡ��������Ӧ��ҵ�����ѡ�
	 * 
	 * @param bizOptionId
	 *            ҵ�����ѡ��ID
	 * @return
	 */
	public BizOption retrieveBizOption ( String bizOptionId ) throws Exception;
	
	/**
	 * ɾ��ָ����ҵ������
	 * 
	 * @param bizTypeId
	 *            ҵ������ID
	 * @return
	 */
	public int deleteBizType ( String bizTypeId ) throws Exception;
	
	/**
	 * ���һ��ҵ������,�޸�ָ����ҵ������
	 * 
	 * @param bizTypeId
	 * @return
	 */
	public  int saveBizType ( BizType bizType ) throws Exception;
	
	/**
	 * ��ȡ���е�ҵ�������б�
	 * 
	 * @param bizType
	 * @return
	 */
	public List retrieveBizTypeList (  ) throws Exception;
	
	
	public List retrieveBizTypeList (  BizType bizType  ) throws Exception;
	/**
	 * ���ҵ�����ͱ����ȡָ����ҵ�����Ͷ���
	 * 
	 * @return
	 */
	public BizType retrieveBizType ( String bizTypeId ) throws Exception;
	
	public boolean validateOption ( BizOption option ) throws Exception;
	
	public boolean validateType ( BizType type ) throws Exception;
	
	public Long countBizOption( BizOption option ) throws CheckException;
	
	public Long countBizOptionValue(BizOption option) throws CheckException;
	
	public Long countBizType(String biztypekey) throws CheckException;
}
